﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using StyleMVVM.DependencyInjection.Impl;

namespace StyleMVVM.DependencyInjection
{
	/// <summary>
	/// This attribute marks an export as shared per request, in a client that mean it will only be shared per that injection,
	///  in the context of MVC that mean per HTTP request, and in WCF that means per call.
	/// </summary>
	public class SharedPerRequestAttribute : Attribute, ILifeCycleContainerProviderAttribute
	{
		public ILifeCycleContainer ProvideContainer()
		{
			return new SharedPerRequestContainer();
		}
	}
}